﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using RBDD.Embol.Negocios;
using RBDD.Embol.Negocios.Servicios;
using RBDD.Embol.AccesoDatos.Entidades;
using RBDD.Embol.UI.Web.Models;
using System.Globalization;
using System.Threading;

namespace RBDD.Embol.UI.Web.Controllers
{
    public class LoginController : Controller
    {
        private readonly IUsuarioNegociosServicio servicio = new UsuarioNegocios();
        
        public ActionResult Index()
        {
            if (Didsoft.Mvc.Security.SessionContext<Usuario>.SessionKey != null)
                return RedirectToAction("Index", "Menu");

            return View();

            Thread.CurrentThread.CurrentCulture = new CultureInfo("es-BO");
            Thread.CurrentThread.CurrentUICulture= new CultureInfo("es-BO");
        }

        [HttpPost]
        public ActionResult Index(UsuarioViewModel usuarioVm)
        {
            if (ModelState.IsValid)
            {
                var usuario = servicio.BuscarUsuario(usuarioVm.Usuario, usuarioVm.Contrasena);
                
                if (usuario != null)
                {
                    Didsoft.Mvc.Security.SessionContext<object>.LoadSessionParams(usuario);
                    return RedirectToAction("Index", "Menu");
                }
                else
                {
                    ModelState.AddModelError("", "Usuario o clave no existe");
                }
            }
            return View();
        }

        public ActionResult CerrarSession()
        {
            Didsoft.Mvc.Security.SessionContext<Usuario>.CloseSession();
            return RedirectToAction("Index", "Login");
        }

    }
}
